Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

152
Visualizações
La redirección de PHP a una URL diferente usando el encabezado ("Ubicación:") no funciona

Soy bastante nuevo en php, investigué un poco y probé la solución de otra persona, pero no funcionó para mí. Quiero redirigir a los usuarios a otra página después de que se haya ejecutado cierto código. Me di cuenta de que no hay mensajes de error y el sitio no cambia. Así que eliminé casi todo del código y lo puse en un pequeño archivo test.php. El mismo problema persiste.

 <!DOCTYPE html> <html> <body> <h1>Tes2</h1> <?php // Execute some code here sleep(10); // Give the user 10 seconds to read the output of my code // redirect the user with php or trigger a JS script to do that header("Window-target: _parent"); header("Location: https://www.w3schools.com/"); ?> </body> </html>

Expectativa: la página debe ejecutar el script php principal (visualizado por el comentario) y activar un temporizador. Cuando termine el temporizador, debería redirigirme a "www.w3schools.com". No debe haber errores u otros mensajes. La redirección debe realizarse mediante el código php, si es posible (JS sería una forma posible de resolver esto, pero aún necesitaría iniciar el código JS después de que se haya ejecutado mi código php).

Resultado: la página aparece y carga el código html. El sitio permanece y no cambia. No hay errores.

Entorno: se ejecuta en Chromium versión 96.0.4664.45 (compilación de Offizieller) para Linux Mint (64 bits) El sitio web es funcional y ejecutó el código PHP como se esperaba, pero no este.

¿Existe una solución ligera y universal (para los navegadores más populares) que redirija a los usuarios a otra página?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Los encabezados deben configurarse antes de que se transmitan los datos, por lo que no puede simplemente pegarlos en el medio de un archivo. Citando el manual :

Recuerde que se debe llamar a header() antes de enviar cualquier salida real, ya sea mediante etiquetas HTML normales, líneas en blanco en un archivo o desde PHP.

Entonces, como mínimo, deberá volver a escribir su archivo para:

 <?php header("Window-target: _parent"); header("Location: https://www.w3schools.com/"); ?> <!doctype html> ...

Además, nunca sleep() en una respuesta http(s): esa respuesta debería terminar lo más rápido posible, sin importar el contenido que necesite generar. El sueño no tiene cabida en (realmente ningún) código PHP.

about 4 years ago · Juan Pablo Isaza Relatório

0

Una combinación de PHP y JS parece ser la solución más fácil. Pero eso podría ser sólo mi opinión. Traté de documentar el código lo mejor posible, para que otros puedan entenderlo:

 <?php function redirect() { // Create some JS code which will pause for 3 seconds and execute the move function afterwards. This Function will redirect the user echo "<script>"; echo "function move() {window.location.replace('http://www.w3schools.com');}"; echo "setTimeout(move, 3000);"; echo "</script>"; } ?> <!DOCTYPE html> <html> <head> </head> <body> <h1>Test2</h1> <?php echo "<p>You will be redirected after the code has been executed!</p>"; // Run actual code redirect(); // Redirect using JS code ?> </body> </html>
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda